package com.xjc.system.utils;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;

public class ImageToBase64Utils {

    /**
     * 将本地图片文件转换为Base64字符串
     * @param filePath 图片文件路径
     * @return Base64编码的字符串
     * @throws IOException 如果读取文件时发生错误
     */
    public static String encodeLocalImageToBase64(String filePath) {
        byte[] imageBytes = new byte[0];
        try {
            imageBytes = Files.readAllBytes(Paths.get(filePath));
            return Base64.getEncoder().encodeToString(imageBytes);

        } catch (Exception e) {
            return "";
        }
    }

    /**
     * 将本地图片文件转换为Base64字符串
     * @param imageBytes 图片字节数据
     * @return Base64编码的字符串
     * @throws IOException 如果读取文件时发生错误
     */
    public static String encodeLocalImageToBase64(byte[] imageBytes) {
        try {
            return "data:image/png;base64," +  Base64.getEncoder().encodeToString(imageBytes);

        } catch (Exception e) {
            return "";
        }
    }


    /**
     * 将前端传来的图片文件（MultipartFile）转换为Base64字符串
     * @param file 前端传来的图片文件
     * @return Base64编码的字符串
     * @throws IOException 如果读取文件时发生错误
     */
    public static String encodeMultipartFileToBase64(MultipartFile file)  {
        try {

            byte[] imageBytes = file.getBytes();
            return Base64.getEncoder().encodeToString(imageBytes);
        }catch (Exception e){
            return "";
        }
    }
}
